<HTML>
<HEAD>
<TITLE>Waciwoci currentTarget oraz eventPhase</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function init() {
  // stosujemy star skadni do okrelenie funkcji obsugi 
  // zdarze na etapie propagacji ku grze hierarchii obiektw dokumentu
    document.onclick = processEvent
    document.body.onclick = processEvent
  // wczamy przechwytywanie zdarze kliknicia w dokumencie i formularzu
    document.addEventListener("click", processEvent, true)
    document.forms[0].addEventListener("click", processEvent, true)
  // okrelamy odbiorc zdarze kliknicia dla formularza
    document.forms[0].addEventListener("click", processEvent, false)
}
function processEvent(evt) {
    var currTargTag, msg
    if (evt.currentTarget.nodeType == 1) {
        currTargTag = "<" + evt.currentTarget.tagName + ">"
    } else {
        currTargTag = evt.currentTarget.nodeName
    }
     msg = "Zdarzenie jest aktualnie obsugiwane na poziomie elementu " 
     + currTargTag + " "
     msg += "(etap" + getPhase(evt) + ")."
     alert(msg)
}

// okrelamy faz obsugi zdarzenia
function getPhase(evt) {
    switch (evt.eventPhase) {
        case 1:
            return "PRZECHWYTYWANIE"
            break
        case 2:
            return "W OBIEKCIE DOCELOWYM"
            break
        case 3:
            return "PROPAGACJA KU GRZE HIERARCHII"
            break
        default:
            return ""    
    }
}
</SCRIPT>
</HEAD>
<BODY onLoad="init()">
<H1>Waciwoci currentTarget oraz eventPhase</H1>
<HR>
<FORM>
<INPUT TYPE="button" VALUE="Przycisk" NAME="main1" 
    onClick="processEvent(event)">
</FORM>
</BODY>
</HTML>